package br.com.admGearman.cadastro.vo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

import br.com.admGearman.cadastro.vo.filtro.FiltroLojaVo;
import br.com.r2.util.tipodado.InteiroLongo;
import br.com.r2.util.tipodado.Texto;

@Entity
@Table(name = "DIM_LOJA")
@Proxy(lazy = false)
public class LojaVo implements Serializable
{

   /**
    * 
    */
   private static final long serialVersionUID = -6337662436999325603L;

   @Id
   @Column(name = "ID")
   @GeneratedValue(generator = "InteiroSequenceGenerator")
   @GenericGenerator(name = "InteiroSequenceGenerator", strategy = "br.com.r2.util.tipodado.hibernate.generator.InteiroSequenceGenerator", parameters = { @Parameter(name = "sequence", value = "dim_loja_id_seq") })
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo codigo;

   @Column(name = "DESCRICAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo descricao;

   @Column(name = "EST_NOME_EMPRESA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeEmpresa;

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "EST_EMPRESA")
   private EstEmpresaVo estEmpresaVo;

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "EST_LOJA")
   private EstLojaVo estLojaVo;
   
   @Transient
   private InteiroLongo estLojaNew;
   
   @Transient
   private FiltroLojaVo filtroVo;
   
   public InteiroLongo getCodigo()
   {
      return codigo;
   }

   public void setCodigo(InteiroLongo codigo)
   {
      this.codigo = codigo;
   }

   public InteiroLongo getDescricao()
   {
      return descricao;
   }

   public void setDescricao(InteiroLongo descricao)
   {
      this.descricao = descricao;
   }

   public EstEmpresaVo getEstEmpresaVo()
   {
      return estEmpresaVo;
   }

   public void setEstEmpresaVo(EstEmpresaVo estEmpresaVo)
   {
      this.estEmpresaVo = estEmpresaVo;
   }

   public FiltroLojaVo getFiltroVo()
   {
      return filtroVo;
   }

   public void setFiltroVo(FiltroLojaVo filtroVo)
   {
      this.filtroVo = filtroVo;
   }

   public Texto getNomeEmpresa()
   {
      return nomeEmpresa;
   }

   public void setNomeEmpresa(Texto nomeEmpresa)
   {
      this.nomeEmpresa = nomeEmpresa;
   }

   public EstLojaVo getEstLojaVo()
   {
      return estLojaVo;
   }

   public void setEstLojaVo(EstLojaVo estLojaVo)
   {
      this.estLojaVo = estLojaVo;
   }

   public InteiroLongo getEstLojaNew()
   {
      return estLojaNew;
   }

   public void setEstLojaNew(InteiroLongo estLojaNew)
   {
      this.estLojaNew = estLojaNew;
   }
   
}
